export const  formatRelativeToNow = function (utcTimestamp: string | number | Date) {
    const now = new Date(); // 当前时间  
    const then = new Date(utcTimestamp); // 传入的时间  
    const diff = now - then; // 时间差（毫秒）  
    const absDiff = Math.abs(diff);

    // 计算完整的年、月、日差  
    const yearsDiff = Math.floor(absDiff / (1000 * 60 * 60 * 24 * 365));
    const monthsDiff = Math.floor((absDiff / (1000 * 60 * 60 * 24 * 30.437)) % 12); // 假设一年有30.437天（平均每月，考虑闰年）  
    const daysDiff = Math.floor((absDiff / (1000 * 60 * 60 * 24)) % 30.437); // 余下的天数  

    if (diff < 0) {
        return '未来';
    } else if (absDiff < 1000 * 60) {
        return Math.round(absDiff / 1000) + '秒前';
    } else if (absDiff < 1000 * 60 * 60) {
        return Math.round(absDiff / (1000 * 60)) + '分钟前';
    } else if (absDiff < 1000 * 60 * 60 * 24) {
        return Math.round(absDiff / (1000 * 60 * 60)) + '小时前';
    } else if (absDiff < 1000 * 60 * 60 * 24 * 30.437) {
        if (daysDiff === 0) {
            return Math.round(monthsDiff) + '月前';
        } else {
            return Math.round(daysDiff) + '天前';
        }
    } else if (yearsDiff === 0) {
        return Math.round(monthsDiff) + '月前';
    } else {
        // 超过一年，显示具体时间  
        return then.toLocaleDateString('zh-CN', {
            year: 'numeric',
            month: 'long',
            day: 'numeric'
        });
    }
}